package twobranchTree.maxdepth;

import twobranchTree.preorderTraversal.TreeNode;

/**
 * @Date 2020/2/20
 * @author 王光浩
 * @Description 使用自下向上的方法。当我们遍历树的时候，如果我们能根据左右子节点来确定当前节点的答案，我们就可以使用
 *              自下向上方法来进行。自下而上的方法是后序遍历的一种。
 */
public class DownToTop {
    public int maxDepth(TreeNode root) {
    	return recursively(root);
    }
    /**
     * @Date 2020/2/20
     * @param node the node we need to traveral
     * @return the max depth of the node 
     */
    private int recursively(TreeNode node) {
    	if(node==null)return 0;
    	int left=recursively(node.left);
    	int right=recursively(node.right);
    	return left>right?left+1:right+1;  
    }

}
